﻿/*799. 最长连续不重复子序列

给定一个长度为 n的整数序列，请找出最长的不包含重复的数的连续区间，输出它的长度。

输入格式
第一行包含整数 n
第二行包含 n个整数（均在 0∼105范围内），表示整数序列。

输出格式
共一行，包含一个整数，表示最长的不包含重复的数的连续区间的长度。

数据范围
1≤n≤105
输入样例：
5
1 2 2 3 5
输出样例：
3
*/

#include<iostream>
using namespace std;
const int N = 100010;
int arr[N], S[N];
//双指针 for while

int main()
{
	int n;
	cin >> n;
	for (int i = 0; i < n; i++)	scanf_s("%d", &arr[i]);
	int ans=0;
	for (int i = 0,j=0; i < n; i++)
	{
		S[arr[i]]++;
		while (S[arr[i]] > 1)
		{
			S[arr[j]]--;
			j++;
			//--S[arr[j++]]
		}
		ans = max(ans, i - j + 1);
	}
	cout << ans;
	return 0;
}

/*总结
1.//--S[arr[j++]] 是j不是i
2.(S[arr[i] > 1])  写错了 找了半天bug*/